package com.wizz.trade.auth.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wizz.trade.auth.dto.SysMenuDto;
import com.wizz.trade.auth.dto.page.SysMenuPageDto;
import com.wizz.trade.auth.entity.SysMenu;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wizz.trade.auth.vo.SysMenuVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 菜单表 Mapper 接口
 * </p>
 *
 * @author fyftless
 * @since 2023-04-02 04:26:06
 */
@Mapper
public interface SysMenuMapper extends BaseMapper<SysMenu> {

    /**
     * 分页查询菜单
     * @param page 分页
     * @return 分页信息
     */
    IPage<SysMenu> getPage(Page<SysMenu> page, @Param("dto") SysMenuPageDto sysMenuDto);

    /**
     * 根据用户id获取菜单
     * @param id 用户id
     * @return 菜单
     */
    List<String> getMenusByUserId(Long id);

    /**
     * 逻辑删除
     * @param id 菜单id
     */
    void logicDelete(@Param("id") Long id);

    /**
     * 根据用户id获取限定权限
     * @param id 用户id
     * @return 限定权限
     */
    List<SysMenuVo> getMenusVoList(@Param("userId") Long id);

    /**
     * 更改装填
     * @param id 权限id
     */
    void changeStatus(@Param("id") Long id);
}
